The total analysis is divided into a couple of subject areas such as
Desire to Learn in Next Year
Lifestyle Analysis
Salary Analysis
AI Viewpoint Analysis
Job Assessment Analysis
Job Benefits Analysis
Developer mentalities
Ethics analysis
StackOverflow Inclusivity analysis
Hypothetical Tools Interest
Persona analysis of Engineering Managers, C- Suite Execs, Devops Specialists, Front End Developers, Back End Developers , Data Scientists and Business Analysts
The reader may read the summary here and proceed in detail for the graphs. The graphs here are simple but pragmatic.
Desire to Learn in Next Year
Linux. Android and AWS are the top Platforms which respondents want to learn next year
Node,React and Angular are the top Frameworks which respondents want to learn next year
MySQL, MongoDB and PostgreSQL are the top Databases which respondents want to learn next year
JavaScript,Python, HTML are the top Languages which respondents want to learn next year
Visual Studio Code, Visual Studio and Notepad++ are the top IDE which respondents want to learn next year
Git, Subversion and Team Foundation Version Control are the top Version Control tools that the respondents use.
Slack, Jira, Office productivity tools are the top Communication tools that the respondents use.
Agile, Scrum , Kanban are the top Methodology tools that respondents are using.
9-12 hours is the most popular (38%) time interval that developers spend in front of the computer.
1-2 hours is the most popular (28%) time interval that developers hours outside.
Most devs (46%) never skip meals
Ergonomic Keyboard or mouse , Standing desk , both 10% of the population are the most popular ergonomic devices used by the developers.
Engineering Manager, DevOps Specialist, C Suite executive are the top positions which have the highest salaries.
United States, Switzerland, Israel, Norway and Denmark are the countries with the highest median salaries with respondents of 100 or more.
The highest median salary for 25-34 years old is 95K. US, Switzerland , Israel , Denmark and Australia are the top Five countries which has the highest salaries in this group.
The highest median salary for 35-44 years old is 495K followed by more acceptable 120K. Venezuala, US, Switzerland , Israel , Denmark and Norway are the top Six countries which has the highest salaries in this group.
The highest median salary for 45-54 years old is 1000K followed by more acceptable 130K. Venezuala, HongKong, Switzerland , US, Ireland , Israel , Denmark and UAE are the top Eight countries which has the highest salaries in this group.
Marketing or Sales Professional, C Suite Executives, Academic Researchers , Engineering Managers and Product Managers get the highest salary in USA.
According to the StackOverflow respondents
AI is interesting because it would result in increasing the automation of jobs ( 27%) , algorithms would make interesting decisions(15%)
AI responsibility would be in the hands of people developing or creating AI (32% ), government or regulatory body (18%)
AI future views are Excited more about the possibilities than about the dangers ( 51%) , Worried about the dangers more than excited about the possibilities (13%)
The questions have been framed on different topics for developers on how they assess the job. The framework of the questions have 1 with the most important and 10 is the least important.
Developors provide the Most Importance to
The languages, frameworks, and other technologies
The compensation and benefits
The office environment or company culture
Opportunities for professional development
The opportunity to work from home/remotely
The developers have assessed a job benefits package and provided ratings. ( 1- Most Important, 11 - Least Important).
The most important factors while assessing the job benefits package are
Salary and/or bonuses
Stock options or shares
Health insurance
Retirement or pension savings matching
Computer/office equipment allowance
Conference or education budget
We explore the Developer mentalities here.
Developers have sense of kinship or connection to other developers
Developers agree they have a competition among peers
They also agree they are as good as other developers
Most developers will not write unethical code
Regarding reporting unethical code, developers would report after assessing what it is
The developers feel the ethics repsonsibility stands with the upper management at the company
The developers also feel that they are obligated to consider the ethical implications of the code that they write
Most Developers would recommend StackOverflow to a friend or colleague
Most Developers visit StackOverflow almost daily
Most Developers have a StackOverflow account
Most Developers participate in Q&A less than once a month/monthly in on Stack Overflow
Most Developers have visited StackOverflow Jobs
Most Developers are unaware of the Stack Overflow Developer Story feature
Most Developers would recommend Stack Overflow Jobs to a friend or colleague
Most Developers consider themselves as a member of the Stack Overflow community
Most Developers show the following interests for the Hypothetical Tools
Not At all Interested for A private area for people new to programming
Somewhat Interested for A programming-oriented blog platform
Very Interested for An employer or job review system
Somewhat Interested for An area for Q&A related to career growth
library(tidyverse)
library(stringr)
library(scales)
library(tidytext)
library(igraph)
library(ggraph)
library(treemap)
rm(list=ls())
fillColor = "#FFA07A"
fillColor2 = "#F1C40F"
fillColorLightCoral = "#F08080"
survey_results <- read_csv("input/survey_results_public.csv")glimpse(survey_results)## Observations: 98,855
## Variables: 129
## $ Respondent <int> 1, 3, 4, 5, 7, 8, 9, 10, 11, 16, 1...
## $ Hobby <chr> "Yes", "Yes", "Yes", "No", "Yes", ...
## $ OpenSource <chr> "No", "Yes", "Yes", "No", "No", "N...
## $ Country <chr> "Kenya", "United Kingdom", "United...
## $ Student <chr> "No", "No", "No", "No", "Yes, part...
## $ Employment <chr> "Employed part-time", "Employed fu...
## $ FormalEducation <chr> "Bachelors degree (BA, BS, B.Eng....
## $ UndergradMajor <chr> "Mathematics or statistics", "A na...
## $ CompanySize <chr> "20 to 99 employees", "10,000 or m...
## $ DevType <chr> "Full-stack developer", "Database ...
## $ YearsCoding <chr> "3-5 years", "30 or more years", "...
## $ YearsCodingProf <chr> "3-5 years", "18-20 years", "6-8 y...
## $ JobSatisfaction <chr> "Extremely satisfied", "Moderately...
## $ CareerSatisfaction <chr> "Extremely satisfied", "Neither sa...
## $ HopeFiveYears <chr> "Working as a founder or co-founde...
## $ JobSearchStatus <chr> "Im not actively looking, but I a...
## $ LastNewJob <chr> "Less than a year ago", "More than...
## $ AssessJob1 <int> 10, 1, NA, NA, 8, 8, 5, 6, 6, NA, ...
## $ AssessJob2 <int> 7, 7, NA, NA, 5, 5, 3, 5, 3, NA, N...
## $ AssessJob3 <int> 8, 10, NA, NA, 7, 4, 9, 4, 7, NA, ...
## $ AssessJob4 <int> 1, 8, NA, NA, 1, 9, 4, 2, 4, NA, N...
## $ AssessJob5 <int> 2, 2, NA, NA, 2, 1, 1, 7, 1, NA, N...
## $ AssessJob6 <int> 5, 5, NA, NA, 6, 3, 8, 8, 5, NA, N...
## $ AssessJob7 <int> 3, 4, NA, NA, 4, 6, 2, 10, 10, NA,...
## $ AssessJob8 <int> 4, 3, NA, NA, 3, 2, 7, 1, 8, NA, N...
## $ AssessJob9 <int> 9, 6, NA, NA, 10, 10, 10, 9, 9, NA...
## $ AssessJob10 <int> 6, 9, NA, NA, 9, 7, 6, 3, 2, NA, N...
## $ AssessBenefits1 <int> NA, 1, NA, NA, 1, 1, 1, 1, 1, NA, ...
## $ AssessBenefits2 <int> NA, 5, NA, NA, 10, 3, 3, 3, 3, NA,...
## $ AssessBenefits3 <int> NA, 3, NA, NA, 2, 4, 2, 5, 2, NA, ...
## $ AssessBenefits4 <int> NA, 7, NA, NA, 4, 10, 9, 7, 9, NA,...
## $ AssessBenefits5 <int> NA, 10, NA, NA, 8, 9, 11, 6, 11, N...
## $ AssessBenefits6 <int> NA, 4, NA, NA, 3, 2, 4, 2, 5, NA, ...
## $ AssessBenefits7 <int> NA, 11, NA, NA, 11, 6, 8, 11, 8, N...
## $ AssessBenefits8 <int> NA, 9, NA, NA, 7, 5, 6, 9, 4, NA, ...
## $ AssessBenefits9 <int> NA, 6, NA, NA, 5, 11, 7, 4, 10, NA...
## $ AssessBenefits10 <int> NA, 2, NA, NA, 9, 7, 10, 10, 7, NA...
## $ AssessBenefits11 <int> NA, 8, NA, NA, 6, 8, 5, 8, 6, NA, ...
## $ JobContactPriorities1 <int> 3, 3, NA, NA, 2, 4, 3, 1, 5, NA, N...
## $ JobContactPriorities2 <int> 1, 1, NA, NA, 1, 2, 1, 3, 1, NA, N...
## $ JobContactPriorities3 <int> 4, 5, NA, NA, 4, 5, 5, 2, 2, NA, N...
## $ JobContactPriorities4 <int> 2, 2, NA, NA, 5, 1, 4, 4, 3, NA, N...
## $ JobContactPriorities5 <int> 5, 4, NA, NA, 3, 3, 2, 5, 4, NA, N...
## $ JobEmailPriorities1 <int> 5, 1, NA, NA, 7, 2, 1, 2, 3, NA, N...
## $ JobEmailPriorities2 <int> 6, 3, NA, NA, 3, 6, 5, 6, 7, NA, N...
## $ JobEmailPriorities3 <int> 7, 4, NA, NA, 6, 7, 3, 1, 2, NA, N...
## $ JobEmailPriorities4 <int> 2, 5, NA, NA, 2, 3, 4, 3, 4, NA, N...
## $ JobEmailPriorities5 <int> 1, 2, NA, NA, 1, 1, 2, 7, 1, NA, N...
## $ JobEmailPriorities6 <int> 4, 6, NA, NA, 4, 5, 6, 5, 6, NA, N...
## $ JobEmailPriorities7 <int> 3, 7, NA, NA, 5, 4, 7, 4, 5, NA, N...
## $ UpdateCV <chr> "My job status or other personal s...
## $ Currency <chr> NA, "British pounds sterling (£)",...
## $ Salary <dbl> NA, 51000, NA, NA, 260000, 30000, ...
## $ SalaryType <chr> "Monthly", "Yearly", NA, NA, "Year...
## $ ConvertedSalary <dbl> NA, 70841, NA, NA, 21426, 41671, 1...
## $ CurrencySymbol <chr> "KES", "GBP", NA, NA, "ZAR", "GBP"...
## $ CommunicationTools <chr> "Slack", "Confluence;Office / prod...
## $ TimeFullyProductive <chr> "One to three months", "One to thr...
## $ EducationTypes <chr> "Taught yourself a new language, f...
## $ SelfTaughtTypes <chr> "The official documentation and/or...
## $ TimeAfterBootcamp <chr> NA, NA, NA, NA, NA, NA, NA, "Immed...
## $ HackathonReasons <chr> "To build my professional network"...
## $ AgreeDisagree1 <chr> "Strongly agree", "Agree", NA, "Di...
## $ AgreeDisagree2 <chr> "Strongly agree", "Agree", NA, "Di...
## $ AgreeDisagree3 <chr> "Neither Agree nor Disagree", "Nei...
## $ LanguageWorkedWith <chr> "JavaScript;Python;HTML;CSS", "Jav...
## $ LanguageDesireNextYear <chr> "JavaScript;Python;HTML;CSS", "Go;...
## $ DatabaseWorkedWith <chr> "Redis;SQL Server;MySQL;PostgreSQL...
## $ DatabaseDesireNextYear <chr> "Redis;SQL Server;MySQL;PostgreSQL...
## $ PlatformWorkedWith <chr> "AWS;Azure;Linux;Firebase", "Linux...
## $ PlatformDesireNextYear <chr> "AWS;Azure;Linux;Firebase", "Linux...
## $ FrameworkWorkedWith <chr> "Django;React", "Django", NA, NA, ...
## $ FrameworkDesireNextYear <chr> "Django;React", "React", NA, "Angu...
## $ IDE <chr> "Komodo;Vim;Visual Studio Code", "...
## $ OperatingSystem <chr> "Linux-based", "Linux-based", NA, ...
## $ NumberMonitors <chr> "1", "2", NA, "2", "2", "2", "2", ...
## $ Methodology <chr> "Agile;Scrum", NA, NA, "Agile;Kanb...
## $ VersionControl <chr> "Git", "Git;Subversion", NA, "Git"...
## $ CheckInCode <chr> "Multiple times per day", "A few t...
## $ AdBlocker <chr> "Yes", "Yes", NA, "Yes", "No", "Ye...
## $ AdBlockerDisable <chr> "No", "Yes", NA, "Yes", NA, "Yes",...
## $ AdBlockerReasons <chr> NA, "The website I was visiting as...
## $ AdsAgreeDisagree1 <chr> "Strongly agree", "Somewhat agree"...
## $ AdsAgreeDisagree2 <chr> "Strongly agree", "Neither agree n...
## $ AdsAgreeDisagree3 <chr> "Strongly agree", "Neither agree n...
## $ AdsActions <chr> "Saw an online advertisement and t...
## $ AdsPriorities1 <int> 1, 3, NA, NA, 2, 1, 1, NA, 1, NA, ...
## $ AdsPriorities2 <int> 5, 5, NA, NA, 3, 3, 4, NA, 3, NA, ...
## $ AdsPriorities3 <int> 4, 1, NA, NA, 4, 4, 2, NA, 5, NA, ...
## $ AdsPriorities4 <int> 7, 4, NA, NA, 6, 2, 5, NA, 4, NA, ...
## $ AdsPriorities5 <int> 2, 6, NA, NA, 1, 7, 3, NA, 2, NA, ...
## $ AdsPriorities6 <int> 6, 7, NA, NA, 7, 5, 7, NA, 7, NA, ...
## $ AdsPriorities7 <int> 3, 2, NA, NA, 5, 6, 6, NA, 6, NA, ...
## $ AIDangerous <chr> "Artificial intelligence surpassin...
## $ AIInteresting <chr> "Algorithms making important decis...
## $ AIResponsible <chr> "The developers or the people crea...
## $ AIFuture <chr> "I'm excited about the possibiliti...
## $ EthicsChoice <chr> "No", "Depends on what it is", NA,...
## $ EthicsReport <chr> "Yes, and publicly", "Depends on w...
## $ EthicsResponsible <chr> "Upper management at the company/o...
## $ EthicalImplications <chr> "Yes", "Yes", NA, "Yes", "Yes", "U...
## $ StackOverflowRecommend <chr> "10 (Very Likely)", "10 (Very Like...
## $ StackOverflowVisit <chr> "Multiple times per day", "A few t...
## $ StackOverflowHasAccount <chr> "Yes", "Yes", NA, "Yes", "Yes", "Y...
## $ StackOverflowParticipate <chr> "I have never participated in Q&A ...
## $ StackOverflowJobs <chr> "No, I knew that Stack Overflow ha...
## $ StackOverflowDevStory <chr> "Yes", "No, I have one but it's ou...
## $ StackOverflowJobsRecommend <chr> NA, "7", NA, "8", NA, "8", "7", NA...
## $ StackOverflowConsiderMember <chr> "Yes", "Yes", NA, "Yes", "Yes", "N...
## $ HypotheticalTools1 <chr> "Extremely interested", "A little ...
## $ HypotheticalTools2 <chr> "Extremely interested", "A little ...
## $ HypotheticalTools3 <chr> "Extremely interested", "A little ...
## $ HypotheticalTools4 <chr> "Extremely interested", "A little ...
## $ HypotheticalTools5 <chr> "Extremely interested", "A little ...
## $ WakeTime <chr> "Between 5:00 - 6:00 AM", "Between...
## $ HoursComputer <chr> "9 - 12 hours", "5 - 8 hours", NA,...
## $ HoursOutside <chr> "1 - 2 hours", "30 - 59 minutes", ...
## $ SkipMeals <chr> "Never", "Never", NA, "3 - 4 times...
## $ ErgonomicDevices <chr> "Standing desk", "Ergonomic keyboa...
## $ Exercise <chr> "3 - 4 times per week", "Daily or ...
## $ Gender <chr> "Male", "Male", NA, "Male", "Male"...
## $ SexualOrientation <chr> "Straight or heterosexual", "Strai...
## $ EducationParents <chr> "Bachelors degree (BA, BS, B.Eng....
## $ RaceEthnicity <chr> "Black or of African descent", "Wh...
## $ Age <chr> "25 - 34 years old", "35 - 44 year...
## $ Dependents <chr> "Yes", "Yes", NA, "No", "Yes", "No...
## $ MilitaryUS <chr> NA, NA, NA, "No", NA, NA, "No", NA...
## $ SurveyTooLong <chr> "The survey was an appropriate len...
## $ SurveyEasy <chr> "Very easy", "Somewhat easy", NA, ...
survey_country = survey_results %>%
group_by(Country) %>%
summarise(Count = n()) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(Country = reorder(Country,Count)) %>%
head(20)
treemap(survey_country,
index="Country",
vSize = "Count",
title="Participation by Country",
palette = "RdBu",
fontsize.title = 14
)TotalNoofRows = nrow(survey_results)
survey_results %>%
group_by(Hobby) %>%
summarise(Count = n()/TotalNoofRows) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(Hobby = reorder(Hobby,Count)) %>%
ggplot(aes(x = Hobby,y = Count)) +
geom_bar(stat='identity',fill= fillColor2) +
geom_text(aes(x = Hobby, y = .01, label = paste0("( ",round(Count*100,2)," %)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
scale_y_continuous(labels = percent_format()) +
labs(x = 'Hobby',
y = 'Percentage',
title = 'Hobby and Percentage') +
coord_flip() +
theme_bw()More than 80% of the respondents consider Coding as a Hobby.
survey_results %>%
filter(Hobby == "Yes") %>%
group_by(Country) %>%
summarise(Count = n()/TotalNoofRows) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(Country = reorder(Country,Count)) %>%
head(10) %>%
ggplot(aes(x = Country,y = Count)) +
geom_bar(stat='identity',fill= fillColor) +
geom_text(aes(x = Country,y = .01, label = paste0("( ",round(Count*100,2)," %)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
scale_y_continuous(labels = percent_format()) +
labs(x = 'Country',
y = 'Percentage',
title = 'Country with Hobby as Coding and Percentage') +
coord_flip() +
theme_bw()United States, India, Germany, United Kingdom and Canada are the countries with people who consider coding as an Hobby.
DevType <- survey_results %>%
mutate(DevType = str_split(DevType, pattern = ";")) %>%
unnest(DevType) %>%
select(DevType)
TotalNoofRows = nrow(DevType)
DevType %>%
group_by(DevType) %>%
summarise(Count = n()/TotalNoofRows) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(DevType = reorder(DevType,Count)) %>%
head(10) %>%
ggplot(aes(x = DevType,y = Count)) +
geom_bar(stat='identity',fill= fillColor) +
geom_text(aes(x = DevType, y = .01, label = paste0("( ",round(Count*100,2)," %)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
scale_y_continuous(labels = percent_format()) +
labs(x = 'DevType',
y = 'Percentage',
title = 'DevType and Percentage') +
coord_flip() +
theme_bw()The most popular DevTypes are the Back-end , Full Stack and the Front end developers.
The bar plot lists the most popular Developer Types along with the Years of Coding
survey_results %>%
select(DevType,YearsCoding) %>%
mutate(DevType = str_split(DevType, pattern = ";")) %>%
unnest(DevType) %>%
group_by(DevType,YearsCoding) %>%
summarise(Count = n()) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(YearsCoding = as.character(YearsCoding),
DevType = as.character(DevType)) %>%
mutate(DevType_YearsOfCoding = paste(DevType,YearsCoding)) %>%
mutate(DevType_YearsOfCoding = reorder(DevType_YearsOfCoding,Count)) %>%
head(10) %>%
ggplot(aes(x = DevType_YearsOfCoding,y = Count)) +
geom_bar(stat='identity',fill= fillColor2) +
geom_text(aes(x = DevType_YearsOfCoding, y = 1, label = paste0("( ",Count," )",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
labs(x = 'DevType_YearsOfCoding',
y='Count',
title = 'DevType_YearsOfCoding and Count') +
coord_flip() +
theme_bw()Answers for Which of the following best describes the highest level of formal education that you have completed?
TotalNoofRows = nrow(survey_results)
plotFormalEducation <- function(survey_results,TotalNoofRows) {
survey_results %>%
filter(!is.na(FormalEducation )) %>%
select(FormalEducation ) %>%
group_by(FormalEducation ) %>%
summarise(Count = n()/TotalNoofRows ) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(FormalEducation = reorder(FormalEducation ,Count)) %>%
head(10) %>%
ggplot(aes(x = FormalEducation ,y = Count)) +
geom_bar(stat='identity',fill= fillColorLightCoral) +
geom_text(aes(x = FormalEducation , y = .01, label = paste0("( ",round(Count*100,2)," %)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
scale_y_continuous(labels = percent_format()) +
labs(x = 'FormalEducation ',
y = 'Percentage',
title = 'FormalEducation and Percentage') +
coord_flip() +
theme_bw()
}
plotFormalEducation(survey_results,TotalNoofRows)Answers for You previously indicated that you went to a college or university. Which of the following best describes your main field of study (aka 'major')?
plotUnderGradDegree <- function(survey_results,TotalNoofRows) {
survey_results %>%
filter(!is.na(UndergradMajor)) %>%
select(UndergradMajor) %>%
group_by(UndergradMajor) %>%
summarise(Count = n()/TotalNoofRows ) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(UndergradMajor = reorder(UndergradMajor,Count)) %>%
head(10) %>%
ggplot(aes(x = UndergradMajor,y = Count)) +
geom_bar(stat='identity',fill= fillColor2) +
geom_text(aes(x = UndergradMajor,y = .01, label = paste0("( ",round(Count*100,2)," %)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
scale_y_continuous(labels = percent_format()) +
labs(x = 'UndergradMajor',
y = 'Percentage',
title = 'UndergradMajor and Percentage') +
coord_flip() +
theme_bw()
}
plotUnderGradDegree(survey_results,TotalNoofRows)TotalNoofRows = nrow(survey_results)
plotPlatformDesire <- function(survey_results,TotalNoofRows) {
survey_results %>%
filter(!is.na(PlatformDesireNextYear)) %>%
select(PlatformDesireNextYear) %>%
mutate(PlatformDesireNextYear = str_split(PlatformDesireNextYear, pattern = ";")) %>%
unnest(PlatformDesireNextYear) %>%
group_by(PlatformDesireNextYear) %>%
summarise(Count = n()) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(TotalCount = sum(Count)) %>%
mutate(Count = Count/TotalCount) %>%
mutate(PlatformDesireNextYear = reorder(PlatformDesireNextYear,Count)) %>%
head(10) %>%
ggplot(aes(x = PlatformDesireNextYear,y = Count)) +
geom_bar(stat='identity',fill= fillColor) +
geom_text(aes(x = PlatformDesireNextYear,y = .01, label = paste0("( ",round(Count*100,2)," %)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
scale_y_continuous(labels = percent_format()) +
labs(x = 'PlatformDesireNextYear',
y='Percentage',
title = 'PlatformDesireNextYear and Percentage') +
coord_flip() +
theme_bw()
}
plotPlatformDesire(survey_results,TotalNoofRows)Linux. Android and AWS are the top Platforms which respondents want to learn next year
plotFrameworkDesire <- function(survey_results,TotalNoofRows) {
survey_results %>%
filter(!is.na(FrameworkDesireNextYear)) %>%
select(FrameworkDesireNextYear) %>%
mutate(FrameworkDesireNextYear = str_split(FrameworkDesireNextYear, pattern = ";")) %>%
unnest(FrameworkDesireNextYear) %>%
group_by(FrameworkDesireNextYear) %>%
summarise(Count = n()/TotalNoofRows) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(TotalCount = sum(Count)) %>%
mutate(Count = Count/TotalCount) %>%
mutate(FrameworkDesireNextYear = reorder(FrameworkDesireNextYear,Count)) %>%
head(10) %>%
ggplot(aes(x = FrameworkDesireNextYear,y = Count)) +
geom_bar(stat='identity',fill= fillColorLightCoral) +
geom_text(aes(x = FrameworkDesireNextYear,y = .01, label = paste0("( ",round(Count*100,2)," %)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
scale_y_continuous(labels = percent_format()) +
labs(x = 'FrameworkDesireNextYear',
y='Percentage',
title = 'FrameworkDesireNextYear and Percentage') +
coord_flip() +
theme_bw()
}
plotFrameworkDesire(survey_results,TotalNoofRows)Node,React and Angular are the top Frameworks which respondents want to learn next year
plotDatabaseDesire <- function(survey_results,TotalNoofRows) {
survey_results %>%
filter(!is.na(DatabaseDesireNextYear)) %>%
select(DatabaseDesireNextYear) %>%
mutate(DatabaseDesireNextYear = str_split(DatabaseDesireNextYear, pattern = ";")) %>%
unnest(DatabaseDesireNextYear) %>%
group_by(DatabaseDesireNextYear) %>%
summarise(Count = n()/TotalNoofRows) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(TotalCount = sum(Count)) %>%
mutate(Count = Count/TotalCount) %>%
mutate(DatabaseDesireNextYear = reorder(DatabaseDesireNextYear,Count)) %>%
head(10) %>%
ggplot(aes(x = DatabaseDesireNextYear,y = Count)) +
geom_bar(stat='identity',fill= fillColor) +
scale_y_continuous(labels = percent_format()) +
geom_text(aes(x = DatabaseDesireNextYear,y = .01, label = paste0("( ",round(Count*100,2)," %)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
labs(x = 'DatabaseDesireNextYear',
y='Percentage',
title = 'DatabaseDesireNextYear and Percentage') +
coord_flip() +
theme_bw()
}
plotDatabaseDesire(survey_results,TotalNoofRows)MySQL, MongoDB and PostgreSQL are the top databases which respondents want to learn next year
plotLanguageDesire <- function(survey_results,TotalNoofRows) {
survey_results %>%
filter(!is.na(LanguageDesireNextYear)) %>%
select(LanguageDesireNextYear) %>%
mutate(LanguageDesireNextYear = str_split(LanguageDesireNextYear, pattern = ";")) %>%
unnest(LanguageDesireNextYear) %>%
group_by(LanguageDesireNextYear) %>%
summarise(Count = n()/TotalNoofRows) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(TotalCount = sum(Count)) %>%
mutate(Count = Count/TotalCount) %>%
mutate(LanguageDesireNextYear = reorder(LanguageDesireNextYear,Count)) %>%
head(10) %>%
ggplot(aes(x = LanguageDesireNextYear,y = Count)) +
geom_bar(stat='identity',fill= fillColor2) +
geom_text(aes(x = LanguageDesireNextYear,y = .01, label = paste0("( ",round(Count*100,2)," %)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
scale_y_continuous(labels = percent_format()) +
labs(x = 'LanguageDesireNextYear',
y='Percentage',
title = 'LanguageDesireNextYear and Percentage') +
coord_flip() +
theme_bw()
}
plotLanguageDesire(survey_results,TotalNoofRows)JavaScript,Python, HTML are the top languages which respondents want to learn next year
survey_results %>%
filter(!is.na(LanguageWorkedWith)) %>%
select(LanguageWorkedWith) %>%
mutate(LanguageWorkedWith = str_split(LanguageWorkedWith, pattern = ";")) %>%
unnest(LanguageWorkedWith) %>%
group_by(LanguageWorkedWith) %>%
summarise(Count = n()/TotalNoofRows) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(TotalCount = sum(Count)) %>%
mutate(Count = Count/TotalCount) %>%
mutate(LanguageWorkedWith = reorder(LanguageWorkedWith,Count)) %>%
head(10) %>%
ggplot(aes(x = LanguageWorkedWith,y = Count)) +
geom_bar(stat='identity',fill= fillColor2) +
geom_text(aes(x = LanguageWorkedWith,y = .01, label = paste0("( ",round(Count*100,2)," %)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
scale_y_continuous(labels = percent_format()) +
labs(x = 'LanguageWorkedWith',
y='Percentage',
title = 'LanguageWorkedWith and Percentage') +
coord_flip() +
theme_bw()The network graph shows the people associated with R
count_bigrams <- function(dataset) {
dataset %>%
unnest_tokens(bigram, LanguageWorkedWith, token = "ngrams", n = 2) %>%
separate(bigram, c("word1", "word2"), sep = " ") %>%
count(word1, word2, sort = TRUE)
}
visualize_bigrams <- function(bigrams) {
set.seed(2016)
a <- grid::arrow(type = "closed", length = unit(.15, "inches"))
bigrams %>%
graph_from_data_frame() %>%
ggraph(layout = "fr") +
geom_edge_link(aes(edge_alpha = n), show.legend = FALSE, arrow = a) +
geom_node_point(color = "lightblue", size = 5) +
geom_node_text(aes(label = name), vjust = 1, hjust = 1) +
theme_void()
}
visualize_bigrams_individual <- function(bigrams) {
set.seed(2016)
a <- grid::arrow(type = "closed", length = unit(.15, "inches"))
bigrams %>%
graph_from_data_frame() %>%
ggraph(layout = "fr") +
geom_edge_link(aes(edge_alpha = n), show.legend = FALSE, arrow = a,end_cap = circle(.07, 'inches')) +
geom_node_point(color = "lightblue", size = 5) +
geom_node_text(aes(label = name), vjust = 1, hjust = 1) +
theme_void()
}
survey_results %>%
count_bigrams() %>%
filter(word1 == "r" | word2 == "r") %>%
filter( n > 50) %>%
visualize_bigrams()The network graph shows the people associated with python
survey_results %>%
count_bigrams() %>%
filter(word1 == "python" | word2 == "python") %>%
filter( n > 50) %>%
visualize_bigrams()survey_results %>%
filter(!is.na(IDE)) %>%
select(IDE) %>%
mutate(IDE = str_split(IDE, pattern = ";")) %>%
unnest(IDE) %>%
group_by(IDE) %>%
summarise(Count = n()/TotalNoofRows) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(TotalCount = sum(Count)) %>%
mutate(Count = Count/TotalCount) %>%
mutate(IDE = reorder(IDE,Count)) %>%
head(10) %>%
ggplot(aes(x = IDE,y = Count)) +
geom_bar(stat='identity',fill= fillColorLightCoral) +
geom_text(aes(x = IDE,y = .01, label = paste0("( ",round(Count*100,2)," %)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
scale_y_continuous(labels = percent_format()) +
labs(x = 'IDE',
y='Percentage',
title = 'IDE and Percentage') +
coord_flip() +
theme_bw()Visual Studio Code, Visual Studio and Notepad++ are the top IDE which respondents want to learn next year
survey_results %>%
filter(!is.na(VersionControl)) %>%
select(VersionControl) %>%
mutate(VersionControl = str_split(VersionControl, pattern = ";")) %>%
unnest(VersionControl) %>%
group_by(VersionControl) %>%
summarise(Count = n()/TotalNoofRows) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(TotalCount = sum(Count)) %>%
mutate(Count = Count/TotalCount) %>%
mutate(VersionControl = reorder(VersionControl,Count)) %>%
head(10) %>%
ggplot(aes(x = VersionControl,y = Count)) +
geom_bar(stat='identity',fill= fillColor) +
geom_text(aes(x = VersionControl,y = .01, label = paste0("( ",round(Count*100,2)," %)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
scale_y_continuous(labels = percent_format()) +
labs(x = 'VersionControl',
y='Percentage',
title = 'VersionControl and Percentage') +
coord_flip() +
theme_bw()Git, Subversion and Team Foundation Version Control are the top Version Control tools that the respondents use.
survey_results %>%
filter(!is.na(CommunicationTools)) %>%
select(CommunicationTools) %>%
mutate(CommunicationTools = str_split(CommunicationTools, pattern = ";")) %>%
unnest(CommunicationTools) %>%
group_by(CommunicationTools) %>%
summarise(Count = n()/TotalNoofRows) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(TotalCount = sum(Count)) %>%
mutate(Count = Count/TotalCount * 100) %>%
mutate(CommunicationTools = reorder(CommunicationTools,Count)) %>%
head(10) %>%
ggplot(aes(x = CommunicationTools,y = Count)) +
geom_bar(stat='identity',fill= fillColor2) +
geom_text(aes(x = CommunicationTools,y = .01, label = paste0("( ",round(Count*100,2)," %)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
scale_y_continuous(labels = percent_format()) +
labs(x = 'CommunicationTools',
y='Percentage',
title = 'CommunicationTools and Percentage') +
coord_flip() +
theme_bw()Slack, Jira, Office productivity tools are the top Communication tools that the respondents use.
survey_results %>%
filter(!is.na(Methodology)) %>%
select(Methodology) %>%
mutate(Methodology = str_split(Methodology, pattern = ";")) %>%
unnest(Methodology) %>%
group_by(Methodology) %>%
summarise(Count = n()/TotalNoofRows) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(TotalCount = sum(Count)) %>%
mutate(Count = Count/TotalCount) %>%
mutate(Methodology = reorder(Methodology,Count)) %>%
head(10) %>%
ggplot(aes(x = Methodology,y = Count)) +
geom_bar(stat='identity',fill= fillColor2) +
geom_text(aes(x = Methodology,y = .01, label = paste0("( ",round(Count*100,2)," %)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
scale_y_continuous(labels = percent_format()) +
labs(x = 'Methodology',
y='Percentage',
title = 'Methodology and Percentage') +
coord_flip() +
theme_bw()Agile, Scrum , Kanban are the top Methodology tools that respondents are using.
9-12 hours is the most popular (38%) time interval that developers spend in front of the computer.
1-2 hours is the most popular (28%) time interval that developers hours outside.
Most devs (46%) never skip meals
Ergonomic Keyboard or mouse , Standing desk , both 10% of the population are the most popular ergonomic devices used by the developers.
survey_results %>%
filter(!is.na(HoursComputer)) %>%
select(HoursComputer) %>%
group_by(HoursComputer) %>%
summarise(Count = n()/TotalNoofRows) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(HoursComputer = reorder(HoursComputer,Count)) %>%
head(10) %>%
ggplot(aes(x = HoursComputer,y = Count)) +
geom_bar(stat='identity',fill= fillColor2) +
geom_text(aes(x = HoursComputer,y = .01, label = paste0("( ",round(Count*100,2)," %)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
scale_y_continuous(labels = percent_format()) +
labs(x = 'HoursComputer',
y='Percentage',
title = 'HoursComputer and Percentage') +
coord_flip() +
theme_bw()9-12 hours is the most popular (38%) time interval that developers spend in front of the computer.
survey_results %>%
filter(!is.na(HoursOutside)) %>%
select(HoursOutside) %>%
group_by(HoursOutside) %>%
summarise(Count = n()/TotalNoofRows) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(HoursOutside = reorder(HoursOutside,Count)) %>%
head(10) %>%
ggplot(aes(x = HoursOutside,y = Count)) +
geom_bar(stat='identity',fill= fillColor) +
geom_text(aes(x = HoursOutside,y = .01, label = paste0("( ",round(Count*100,2)," %)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
scale_y_continuous(labels = percent_format()) +
labs(x = 'HoursOutside',
y='Percentage',
title = 'HoursOutside and Percentage') +
coord_flip() +
theme_bw()1-2 hours is the most popular (28%) time interval that developers hours outside.
survey_results %>%
filter(!is.na(SkipMeals)) %>%
select(SkipMeals) %>%
group_by(SkipMeals) %>%
summarise(Count = n()/TotalNoofRows) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(SkipMeals = reorder(SkipMeals,Count)) %>%
head(10) %>%
ggplot(aes(x = SkipMeals,y = Count)) +
geom_bar(stat='identity',fill= fillColor2) +
geom_text(aes(x = SkipMeals,y = .01, label = paste0("( ",round(Count*100,2)," %)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
scale_y_continuous(labels = percent_format()) +
labs(x = 'SkipMeals',
y='Percentage',
title = 'SkipMeals and Percentage') +
coord_flip() +
theme_bw()Most devs (46%) never skip meals
Ergonomic Keyboard or mouse , Standing desk , both 10% of the population are the most popular ergonomic devices used by the developers.
survey_results %>%
filter(!is.na(ErgonomicDevices)) %>%
select(ErgonomicDevices) %>%
group_by(ErgonomicDevices) %>%
summarise(Count = n()/TotalNoofRows) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(ErgonomicDevices = reorder(ErgonomicDevices,Count)) %>%
head(10) %>%
ggplot(aes(x = ErgonomicDevices,y = Count)) +
geom_bar(stat='identity',fill= fillColorLightCoral) +
geom_text(aes(x = ErgonomicDevices,y = .01, label = paste0("( ",round(Count*100,2)," %)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
scale_y_continuous(labels = percent_format()) +
labs(x = 'ErgonomicDevices',
y='Percentage',
title = 'ErgonomicDevices and Percentage') +
coord_flip() +
theme_bw()Engineering Manager, DevOps Specialist, C Suite executive are the top positions which have the highest salaries.
United States, Switzerland, Israel, Norway and Denmark are the countries with the highest median salaries with respondents of 100 or more.
The highest median salary for 25-34 years old is 95K. US, Switzerland , Israel , Denmark and Australia are the top Five countries which has the highest salaries in this group.
The highest median salary for 35-44 years old is 495K followed by more acceptable 120K. Venezuala, US, Switzerland , Israel , Denmark and Norway are the top Six countries which has the highest salaries in this group.
The highest median salary for 45-54 years old is 1000K followed by more acceptable 130K. Venezuala, HongKong, Switzerland , US, Ireland , Israel , Denmark and UAE are the top Eight countries which has the highest salaries in this group.
Marketing or Sales Professional, C Suite Executives, Academic Researchers , Engineering Managers and Product Managers get the highest salary in USA.
Engineering Manager, DevOps Specialist, C Suite executive are the top positions which have the highest salaries.
survey_results %>%
filter(!is.na(DevType)) %>%
select(DevType,ConvertedSalary) %>%
mutate(DevType = str_split(DevType, pattern = ";")) %>%
unnest(DevType) %>%
group_by(DevType) %>%
summarise(MedianSalary = median(ConvertedSalary,na.rm = TRUE)) %>%
arrange(desc(MedianSalary)) %>%
ungroup() %>%
mutate(DevType = reorder(DevType,MedianSalary)) %>%
head(10) %>%
ggplot(aes(x = DevType,y = MedianSalary)) +
geom_bar(stat='identity',fill= fillColor) +
geom_text(aes(x = DevType, y = 1, label = paste0("( ",round(MedianSalary/1e3)," K)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
labs(x = 'DevType',
y = 'Median Salary',
title = 'DevType and Median Salary') +
coord_flip() +
theme_bw()United States, Switzerland, Israel, Norway and Denmark are the countries with the highest median salaries with respondents of 100 or more.
Countries <- survey_results %>%
filter(!is.na(Country)) %>%
group_by(Country) %>%
summarise(Count = n()) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(Country = reorder(Country,Count))
Countries100AndMore <- Countries %>%
filter(Count >= 100)
survey_results %>%
filter(Country %in% Countries100AndMore$Country) %>%
group_by(Country) %>%
summarise(MedianSalary = median(ConvertedSalary,na.rm = TRUE)) %>%
arrange(desc(MedianSalary)) %>%
ungroup() %>%
mutate(Country = reorder(Country,MedianSalary)) %>%
head(10) %>%
ggplot(aes(x = Country,y = MedianSalary)) +
geom_bar(stat='identity',fill= fillColor2) +
geom_text(aes(x = Country, y = 1, label = paste0("( ",round(MedianSalary/1e3)," K)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
labs(x = 'Country',
y = 'Median Salary',
title = 'Country and Median Salary') +
coord_flip() +
theme_bw()plotSalary <- function(datasetName,fillColorName) {
datasetName %>%
filter(Country %in% Countries100AndMore$Country) %>%
group_by(Country) %>%
summarise(MedianSalary = median(ConvertedSalary,na.rm = TRUE)) %>%
arrange(desc(MedianSalary)) %>%
ungroup() %>%
mutate(Country = reorder(Country,MedianSalary)) %>%
head(10) %>%
ggplot(aes(x = Country,y = MedianSalary)) +
geom_bar(stat='identity',fill= fillColorName) +
geom_text(aes(x = Country, y = 1, label = paste0("( ",round(MedianSalary/1e3)," K)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
labs(x = 'Country',
y = 'Median Salary',
title = 'Country and Median Salary') +
coord_flip() +
theme_bw()
}The highest median salary for 25-34 years old is 95K. US, Switzerland , Israel , Denmark and Australia are the top Five countries which has the highest salaries in this group.
survey_results_25_34 <- survey_results %>%
filter(Age == "25 - 34 years old")
plotSalary(survey_results_25_34,fillColorName = fillColor)The highest median salary for 35-44 years old is 495K followed by more acceptable 120K. Venezuala, US, Switzerland , Israel , Denmark and Norway are the top Six countries which has the highest salaries in this group.
survey_results_35_44 <- survey_results %>%
filter(Age == "35 - 44 years old")
plotSalary(survey_results_35_44,fillColorName = fillColorLightCoral)The highest median salary for 45-54 years old is 1000K followed by more acceptable 130K. Venezuala, HongKong, Switzerland , US, Ireland , Israel , Denmark and UAE are the top Eight countries which has the highest salaries in this group.
survey_results_45_54 <- survey_results %>%
filter(Age == "45 - 54 years old")
plotSalary(survey_results_45_54,fillColorName = fillColor2)Marketing or Sales Professional, C Suite Executives, Academic Researchers , Engineering Managers and Product Managers get the highest salary in USA.
survey_results %>%
filter(Country == "United States") %>%
select(DevType,YearsCoding,ConvertedSalary) %>%
mutate(DevType = str_split(DevType, pattern = ";")) %>%
unnest(DevType) %>%
group_by(DevType,YearsCoding) %>%
summarise(MedianSalary = median(ConvertedSalary,na.rm = TRUE)) %>%
arrange(desc(MedianSalary)) %>%
ungroup() %>%
mutate(YearsCoding = as.character(YearsCoding),
DevType = as.character(DevType)) %>%
mutate(DevType_YearsOfCoding = paste(DevType,YearsCoding)) %>%
mutate(DevType_YearsOfCoding =str_replace(DevType_YearsOfCoding,"NA","")) %>%
mutate(DevType_YearsOfCoding = reorder(DevType_YearsOfCoding,MedianSalary)) %>%
head(10) %>%
ggplot(aes(x = DevType_YearsOfCoding,y = MedianSalary)) +
geom_bar(stat='identity',fill= fillColor2) +
geom_text(aes(x = DevType_YearsOfCoding, y = 1, label = paste0("( ",round(MedianSalary,2)/1e3," K)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
labs(x = 'DevType_YearsOfCoding',
y='MedianSalary',
title = 'DevType_YearsOfCoding and MedianSalary') +
coord_flip() +
theme_bw()Answers for What do you think is the most exciting aspect of increasingly advanced AI technology?
survey_results %>%
filter(!is.na(AIInteresting)) %>%
select(AIInteresting) %>%
group_by(AIInteresting) %>%
summarise(Count = n()/TotalNoofRows) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(AIInteresting = reorder(AIInteresting,Count)) %>%
head(10) %>%
ggplot(aes(x = AIInteresting,y = Count)) +
geom_bar(stat='identity',fill= fillColorLightCoral) +
geom_text(aes(x = AIInteresting,y = .01, label = paste0("( ",round(Count*100,2)," %)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
scale_y_continuous(labels = percent_format()) +
labs(x = 'AIInteresting',
y = 'Percentage',
title = 'AIInteresting and Percentage') +
coord_flip() +
theme_bw()Answers for Whose responsibility is it, primarily, to consider the ramifications of increasingly advanced AI technology?
survey_results %>%
filter(!is.na(AIResponsible)) %>%
select(AIResponsible) %>%
group_by(AIResponsible) %>%
summarise(Count = n()/TotalNoofRows) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(AIResponsible = reorder(AIResponsible,Count)) %>%
head(10) %>%
ggplot(aes(x = AIResponsible,y = Count)) +
geom_bar(stat='identity',fill= fillColor) +
geom_text(aes(x = AIResponsible,y = .01, label = paste0("( ",round(Count*100,2)," %)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
scale_y_continuous(labels = percent_format()) +
labs(x = 'AIResponsible',
y = 'Percentage',
title = 'AIResponsible and Percentage') +
coord_flip() +
theme_bw()Answers for Overall, what's your take on the future of artificial intelligence?
survey_results %>%
filter(!is.na(AIFuture)) %>%
select(AIFuture) %>%
group_by(AIFuture) %>%
summarise(Count = n()/TotalNoofRows) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(AIFuture = reorder(AIFuture,Count)) %>%
head(10) %>%
ggplot(aes(x = AIFuture,y = Count)) +
geom_bar(stat='identity',fill= fillColor2) +
geom_text(aes(x = AIFuture,y = .01, label = paste0("( ",round(Count*100,2)," %)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
scale_y_continuous(labels = percent_format()) +
labs(x = 'AIFuture',
y = 'Percentage',
title = 'AIFuture and Percentage') +
coord_flip() +
theme_bw()The questions have been framed on different topics for developers on how they assess the job. The framework of the questions have 1 with the most important and 10 is the least important.
Developors provide the Most Importance to
The languages, frameworks, and other technologies
The compensation and benefits
The office environment or company culture
Opportunities for professional development
The opportunity to work from home/remotely
breaks = c(1:10)
TotalNoofRows = nrow(survey_results)
survey_results %>%
filter(!is.na(AssessJob1)) %>%
group_by(AssessJob1) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
mutate(AssessJob1 = as.numeric(AssessJob1)) %>%
ggplot(aes(x = AssessJob1,y=Count))+
geom_bar(stat='identity',colour="white", fill = c("red")) +
scale_x_continuous(limits = c(0, 11),breaks=breaks ) +
scale_y_continuous(labels = percent_format()) +
labs(x = 'Industry I would be working on' ,y = 'Percentage', title = "Industry I would be working on") +
theme_bw()The respondents are not concerned about the Industry that they would be working on.
survey_results %>%
filter(!is.na(AssessJob2)) %>%
group_by(AssessJob2) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
mutate(AssessJob2 = as.numeric(AssessJob2)) %>%
ggplot(aes(x = AssessJob2,y=Count))+
geom_bar(stat='identity',colour="white", fill = fillColor2) +
scale_x_continuous(limits = c(0, 11),breaks=breaks ) +
scale_y_continuous(labels = percent_format()) +
labs(x = 'The financial performance or funding status of the company or organization' ,y = 'Count', title = paste("The financial performance or funding status of the company or organization")) +
theme_bw()The respondents are not concerned about the financial performance or funding status of the company or organization.
survey_results %>%
filter(!is.na(AssessJob3)) %>%
group_by(AssessJob3) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
mutate(AssessJob3 = as.numeric(AssessJob3)) %>%
ggplot(aes(x = AssessJob3,y=Count))+
geom_bar(stat='identity',colour="white", fill = fillColorLightCoral) +
scale_x_continuous(limits = c(0, 11),breaks=breaks ) +
scale_y_continuous(labels = percent_format()) +
labs(x = 'Specific Department Rating' ,y = 'Count', title = 'Specific Department Rating') +
theme_bw()survey_results %>%
filter(!is.na(AssessJob4)) %>%
group_by(AssessJob4) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
mutate(AssessJob4 = as.numeric(AssessJob4)) %>%
ggplot(aes(x = AssessJob4,y=Count))+
geom_bar(stat='identity',colour="white", fill = fillColor) +
scale_x_continuous(limits = c(0, 11),breaks=breaks ) + scale_y_continuous(labels = percent_format()) +
labs(x = 'Technologies Rating' ,y = 'Count', title = 'Technologies Rating') +
theme_bw()survey_results %>%
filter(!is.na(AssessJob5)) %>%
group_by(AssessJob5) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
mutate(AssessJob5 = as.numeric(AssessJob5)) %>%
ggplot(aes(x = AssessJob5,y=Count))+
geom_bar(stat='identity',colour="white", fill = fillColor2) +
scale_x_continuous(limits = c(0, 11),breaks=breaks ) + scale_y_continuous(labels = percent_format()) +
labs(x = 'The compensation and benefits offered Rating' ,y = 'Count', title = 'The compensation and benefits offered Rating') +
theme_bw()survey_results %>%
filter(!is.na(AssessJob6)) %>%
group_by(AssessJob6) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
mutate(AssessJob6 = as.numeric(AssessJob6)) %>%
ggplot(aes(x = AssessJob6,y=Count))+
geom_bar(stat='identity',colour="white", fill = c("blue")) +
scale_x_continuous(limits = c(0, 11),breaks=breaks ) + scale_y_continuous(labels = percent_format()) +
labs(x = 'The office environment or company culture Rating' ,y = 'Count', title = 'The office environment or company culture Rating') +
theme_bw()survey_results %>%
filter(!is.na(AssessJob7)) %>%
group_by(AssessJob7) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
mutate(AssessJob8 = as.numeric(AssessJob7)) %>%
ggplot(aes(x = AssessJob7,y=Count))+
geom_bar(stat='identity',colour="white", fill = fillColor) +
scale_x_continuous(limits = c(0, 11),breaks=breaks ) + scale_y_continuous(labels = percent_format()) +
labs(x = 'The opportunity to work from home/remotely' ,y = 'Count', title = 'The opportunity to work from home/remotely Rating') +
theme_bw()survey_results %>%
filter(!is.na(AssessJob8)) %>%
group_by(AssessJob8) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
mutate(AssessJob8 = as.numeric(AssessJob8)) %>%
ggplot(aes(x = AssessJob8,y=Count))+
geom_bar(stat='identity',colour="white", fill = c("blue")) +
scale_x_continuous(limits = c(0, 11),breaks=breaks ) + scale_y_continuous(labels = percent_format()) +
labs(x = 'The Opportunities for professional development' ,y = 'Count', title = 'The Opportunities for professional development Rating') +
theme_bw()survey_results %>%
filter(!is.na(AssessJob9)) %>%
group_by(AssessJob9) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
mutate(AssessJob8 = as.numeric(AssessJob9)) %>%
ggplot(aes(x = AssessJob9,y=Count))+
geom_bar(stat='identity',colour="white", fill = fillColor2) +
scale_x_continuous(limits = c(0, 11),breaks=breaks ) + scale_y_continuous(labels = percent_format()) +
labs(x = 'The diversity of the company or organization' ,y = 'Count', title = 'The diversity of the company or organization Rating') +
theme_bw()survey_results %>%
filter(!is.na(AssessJob10)) %>%
group_by(AssessJob10) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
mutate(AssessJob8 = as.numeric(AssessJob10)) %>%
ggplot(aes(x = AssessJob10,y=Count))+
geom_bar(stat='identity',colour="white", fill = c("red")) +
scale_x_continuous(limits = c(0, 11),breaks=breaks ) + scale_y_continuous(labels = percent_format()) +
labs(x = 'How widely used or impactful the product or service' ,y = 'Count', title = 'How widely used or impactful the product or service') +
theme_bw()The developers have assessed a job benefits package and provided ratings. ( 1- Most Important, 11 - Least Important).
The most important factors while assessing the job benefits package are
Salary and/or bonuses
Stock options or shares
Health insurance
Retirement or pension savings matching
Computer/office equipment allowance
Conference or education budget
breaks = c(1:11)
subjectName = 'Salary and/or bonuses Rating'
survey_results %>%
filter(!is.na(AssessBenefits1)) %>%
group_by(AssessBenefits1) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
mutate(AssessBenefits1 = as.numeric(AssessBenefits1)) %>%
ggplot(aes(x = AssessBenefits1,y=Count))+
geom_bar(stat='identity',colour="white", fill = c("red")) +
scale_x_continuous(limits = c(0, 12),breaks=breaks ) +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Count', title = subjectName) +
theme_bw()subjectName = 'Health insurance Rating'
survey_results %>%
filter(!is.na(AssessBenefits3)) %>%
group_by(AssessBenefits3) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
mutate(AssessBenefits3 = as.numeric(AssessBenefits3)) %>%
ggplot(aes(x = AssessBenefits3,y=Count))+
geom_bar(stat='identity',colour="white", fill = fillColor) +
scale_x_continuous(limits = c(0, 12),breaks=breaks ) +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Count', title = subjectName) +
theme_bw()subjectName = 'Parental leave Rating'
survey_results %>%
filter(!is.na(AssessBenefits4)) %>%
group_by(AssessBenefits4) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
mutate(AssessBenefits4 = as.numeric(AssessBenefits4)) %>%
ggplot(aes(x = AssessBenefits4,y=Count))+
geom_bar(stat='identity',colour="white", fill = fillColor2) +
scale_x_continuous(limits = c(0, 12),breaks=breaks ) +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Count', title = subjectName) +
theme_bw()subjectName = 'Fitness or wellness benefit Rating'
survey_results %>%
filter(!is.na(AssessBenefits5)) %>%
group_by(AssessBenefits5) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
mutate(AssessBenefits5 = as.numeric(AssessBenefits5)) %>%
ggplot(aes(x = AssessBenefits5,y=Count))+
geom_bar(stat='identity',colour="white", fill = fillColorLightCoral) +
scale_x_continuous(limits = c(0, 12),breaks=breaks ) +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Count', title = subjectName) +
theme_bw()subjectName = 'Retirement or pension savings matching Rating'
survey_results %>%
filter(!is.na(AssessBenefits6)) %>%
group_by(AssessBenefits6) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
mutate(AssessBenefits6 = as.numeric(AssessBenefits6)) %>%
ggplot(aes(x = AssessBenefits6,y=Count))+
geom_bar(stat='identity',colour="white", fill = c("red")) +
scale_x_continuous(limits = c(0, 12),breaks=breaks ) +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Count', title = subjectName) +
theme_bw()subjectName = ' Company-provided meals or snacks Rating'
survey_results %>%
filter(!is.na(AssessBenefits7)) %>%
group_by(AssessBenefits7) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
mutate(AssessBenefits7 = as.numeric(AssessBenefits7)) %>%
ggplot(aes(x = AssessBenefits7,y=Count))+
geom_bar(stat='identity',colour="white", fill = c("blue")) +
scale_x_continuous(limits = c(0, 12),breaks=breaks ) +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Count', title = subjectName) +
theme_bw()subjectName = ' Computer/office equipment allowance Rating'
survey_results %>%
filter(!is.na(AssessBenefits8)) %>%
group_by(AssessBenefits8) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
mutate(AssessBenefits8 = as.numeric(AssessBenefits8)) %>%
ggplot(aes(x = AssessBenefits8,y=Count))+
geom_bar(stat='identity',colour="white", fill = fillColor) +
scale_x_continuous(limits = c(0, 12),breaks=breaks ) +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Count', title = subjectName) +
theme_bw()subjectName = ' Childcare benefit Rating'
survey_results %>%
filter(!is.na(AssessBenefits9)) %>%
group_by(AssessBenefits9) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
mutate(AssessBenefits9 = as.numeric(AssessBenefits9)) %>%
ggplot(aes(x = AssessBenefits9,y=Count))+
geom_bar(stat='identity',colour="white", fill = fillColor2) +
scale_x_continuous(limits = c(0, 12),breaks=breaks ) +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Count', title = subjectName) +
theme_bw()subjectName = ' Transportation benefit Rating'
survey_results %>%
filter(!is.na(AssessBenefits10)) %>%
group_by(AssessBenefits10) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
mutate(AssessBenefits10 = as.numeric(AssessBenefits10)) %>%
ggplot(aes(x = AssessBenefits10,y=Count))+
geom_bar(stat='identity',colour="white", fill = fillColorLightCoral) +
scale_x_continuous(limits = c(0, 12),breaks=breaks ) +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Count', title = subjectName) +
theme_bw()subjectName = ' Conference or education budget'
survey_results %>%
filter(!is.na(AssessBenefits11)) %>%
group_by(AssessBenefits11) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
mutate(AssessBenefits11 = as.numeric(AssessBenefits11)) %>%
ggplot(aes(x = AssessBenefits11,y=Count))+
geom_bar(stat='identity',colour="white", fill = c("red")) +
scale_x_continuous(limits = c(0, 12),breaks=breaks ) +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Count', title = subjectName) +
theme_bw()We explore the Developer mentalities here.
Developers have sense of kinship or connection to other developers
Developers agree they have a competition among peers
They also agree they are as good as other developers
subjectName = "Sense of kinship or connection to other developers"
survey_results %>%
filter(!is.na(AgreeDisagree1)) %>%
group_by(AgreeDisagree1) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
ggplot(aes(x = AgreeDisagree1,y=Count))+
geom_bar(stat='identity',colour="white", fill = c("red")) +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Percentage', title = subjectName) +
theme_bw()subjectName = "Competing with my peers"
survey_results %>%
filter(!is.na(AgreeDisagree2)) %>%
group_by(AgreeDisagree2) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
ggplot(aes(x = AgreeDisagree2,y=Count))+
geom_bar(stat='identity',colour="white", fill = c("blue")) +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Percentage', title = subjectName) +
theme_bw()subjectName = "Not as good at programming as most of my peers"
survey_results %>%
filter(!is.na(AgreeDisagree3)) %>%
group_by(AgreeDisagree3) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
ggplot(aes(x = AgreeDisagree3,y=Count))+
geom_bar(stat='identity',colour="white", fill = fillColor2) +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Percentage', title = subjectName) +
theme_bw()Most developers will not write unethical code
Regarding reporting unethical code, developers would report after assessing what it is
The developers feel the ethics repsonsibility stands with the upper management at the company
The developers also feel that they are obligated to consider the ethical implications of the code that they write
subjectName = "Will you write the unethical code if requested?"
TotalNoofRows = nrow(survey_results)
survey_results %>%
filter(!is.na(EthicsChoice)) %>%
group_by(EthicsChoice) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
ggplot(aes(x = EthicsChoice,y=Count))+
geom_bar(stat='identity',colour="white", fill = fillColor2) +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Percentage', title = subjectName) +
theme_bw()subjectName = "Do you report or otherwise call out the unethical code in question?"
survey_results %>%
filter(!is.na(EthicsReport)) %>%
group_by(EthicsReport) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
ggplot(aes(x = EthicsReport,y=Count))+
geom_bar(stat='identity',colour="white", fill = fillColor) +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Percentage', title = subjectName) +
theme_bw()subjectName = "Most responsible for code that accomplishes something unethical?"
survey_results %>%
filter(!is.na(EthicsResponsible)) %>%
group_by(EthicsResponsible) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
ggplot(aes(x = EthicsResponsible,y=Count))+
geom_bar(stat='identity',colour="white", fill = fillColorLightCoral) +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Percentage', title = subjectName) +
theme_bw()subjectName = "Obligation to consider the ethical implications of the code that you write"
survey_results %>%
filter(!is.na(EthicalImplications)) %>%
group_by(EthicalImplications) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
ggplot(aes(x = EthicalImplications,y=Count))+
geom_bar(stat='identity',colour="white", fill = c("blue")) +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Percentage', title = subjectName) +
theme_bw()Most Developers would recommend StackOverflow to a friend or colleague
Most Developers visit StackOverflow almost daily
Most Developers have a StackOverflow account
Most Developers participate in Q&A less than once a month/monthly in on Stack Overflow
Most Developers have visited StackOverflow Jobs
Most Developers are unaware of the Stack Overflow Developer Story feature
Most Developers would recommend Stack Overflow Jobs to a friend or colleague
Most Developers consider themselves as a member of the Stack Overflow community
This is the answer to the question “How likely is it that you would recommend Stack Overflow overall to a friend or colleague?”
subjectName = "StackOverflow Recommend "
TotalNoofRows = nrow(survey_results)
survey_results %>%
filter(!is.na(StackOverflowRecommend)) %>%
group_by(StackOverflowRecommend) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
ggplot(aes(x = StackOverflowRecommend,y=Count))+
geom_bar(stat='identity',colour="white", fill = c("red")) +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Percentage', title = subjectName) +
theme_bw()This is the answer to the question “How frequently would you say you visit Stack Overflow?”
subjectName = "StackOverflow Visit "
survey_results %>%
filter(!is.na(StackOverflowVisit)) %>%
group_by(StackOverflowVisit) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
mutate(StackOverflowVisit = reorder(StackOverflowVisit,Count)) %>%
ggplot(aes(x = StackOverflowVisit,y=Count))+
geom_bar(stat='identity',colour="white", fill = c("blue")) +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Percentage', title = subjectName) +
coord_flip() +
theme_bw()This is the answer to the question “Do you have a Stack Overflow account?”
subjectName = "StackOverflow Account "
survey_results %>%
filter(!is.na(StackOverflowHasAccount)) %>%
group_by(StackOverflowHasAccount) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
ggplot(aes(x = StackOverflowHasAccount,y=Count))+
geom_bar(stat='identity',colour="white", fill = fillColor2) +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Percentage', title = subjectName) +
theme_bw()This is the answer to the question “How frequently would you say you participate in Q&A on Stack Overflow? By participate we mean ask, answer, vote for, or comment on questions.”
subjectName = "StackOverflow Participate "
survey_results %>%
filter(!is.na(StackOverflowParticipate)) %>%
group_by(StackOverflowParticipate) %>%
summarise(Count = n()/TotalNoofRows) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(StackOverflowParticipate = reorder(StackOverflowParticipate,Count)) %>%
ggplot(aes(x = StackOverflowParticipate,y=Count))+
geom_bar(stat='identity',colour="white", fill = fillColor) +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Percentage', title = subjectName) +
coord_flip() +
theme_bw()This is the answer to the question “Have you ever used or visited Stack Overflow Jobs?”
subjectName = "StackOverflow Jobs "
survey_results %>%
filter(!is.na(StackOverflowJobs)) %>%
group_by(StackOverflowJobs) %>%
summarise(Count = n()/TotalNoofRows) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(StackOverflowJobs = reorder(StackOverflowJobs,Count)) %>%
ggplot(aes(x = StackOverflowJobs,y=Count))+
geom_bar(stat='identity',colour="white", fill = fillColorLightCoral) +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Percentage', title = subjectName) +
coord_flip() +
theme_bw()This is the answer to the question “Do you have an up-to-date Developer Story on Stack Overflow?”
subjectName = "StackOverflow DevStory "
survey_results %>%
filter(!is.na(StackOverflowDevStory)) %>%
group_by(StackOverflowDevStory) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
ggplot(aes(x = StackOverflowDevStory,y=Count))+
geom_bar(stat='identity',colour="white", fill = fillColor) +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Percentage', title = subjectName) +
theme_bw()This is the answer to the question “How likely is it that you would recommend Stack Overflow Jobs to a friend or colleague? Where 0 is not likely at all and 10 is very likely.”
subjectName = "StackOverflow Jobs Recommend "
survey_results %>%
filter(!is.na(StackOverflowJobsRecommend)) %>%
group_by(StackOverflowJobsRecommend) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
ggplot(aes(x = StackOverflowJobsRecommend,y=Count))+
geom_bar(stat='identity',colour="white", fill = fillColor2) +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Percentage', title = subjectName) +
theme_bw()This is the answer to the question “Do you consider yourself a member of the Stack Overflow community?”
subjectName = "StackOverflow Consider Member "
survey_results %>%
filter(!is.na(StackOverflowConsiderMember)) %>%
group_by(StackOverflowConsiderMember) %>%
summarise(Count = n()/TotalNoofRows) %>%
ungroup() %>%
ggplot(aes(x = StackOverflowConsiderMember,y=Count))+
geom_bar(stat='identity',colour="white", fill = c("blue")) +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Percentage', title = subjectName) +
theme_bw()Most Developers show the following interests for the Hypothetical Tools
Not At all Interested for A private area for people new to programming
Somewhat Interested for A programming-oriented blog platform
Very Interested for An employer or job review system
Somewhat Interested for An area for Q&A related to career growth
subjectName = 'Hypothetical Tools Interest'
survey_results %>%
filter(!is.na(HypotheticalTools1)) %>%
group_by(HypotheticalTools1) %>%
summarise(Count = n()/TotalNoofRows) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(HypotheticalTools1 = reorder(HypotheticalTools1,Count)) %>%
ggplot(aes(x = HypotheticalTools1,y=Count))+
geom_bar(stat='identity',colour="white", fill =fillColor) +
geom_text(aes(x = HypotheticalTools1, y = .01, label = paste0("( ",round(Count*100,2)," %)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Count', title = subjectName) +
coord_flip() +
theme_bw()subjectName = 'Private Area for people new in Programming'
survey_results %>%
filter(!is.na(HypotheticalTools2)) %>%
group_by(HypotheticalTools2) %>%
summarise(Count = n()/TotalNoofRows) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(HypotheticalTools2 = reorder(HypotheticalTools2,Count)) %>%
ggplot(aes(x = HypotheticalTools2,y=Count))+
geom_bar(stat='identity',colour="white", fill =fillColor2) +
geom_text(aes(x = HypotheticalTools2, y = .01, label = paste0("( ",round(Count*100,2)," %)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Count', title = subjectName) +
coord_flip() +
theme_bw()subjectName = 'A programming-oriented blog platform'
survey_results %>%
filter(!is.na(HypotheticalTools3)) %>%
group_by(HypotheticalTools3) %>%
summarise(Count = n()/TotalNoofRows) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(HypotheticalTools3 = reorder(HypotheticalTools3,Count)) %>%
ggplot(aes(x = HypotheticalTools3,y=Count))+
geom_bar(stat='identity',colour="white", fill =fillColorLightCoral) +
geom_text(aes(x = HypotheticalTools3, y = .01, label = paste0("( ",round(Count*100,2)," %)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Count', title = subjectName) +
coord_flip() +
theme_bw()subjectName = 'An employer or job review system'
survey_results %>%
filter(!is.na(HypotheticalTools4)) %>%
group_by(HypotheticalTools4) %>%
summarise(Count = n()/TotalNoofRows) %>%
arrange(desc(Count)) %>%
ungroup() %>%
mutate(HypotheticalTools4 = reorder(HypotheticalTools4,Count)) %>%
ggplot(aes(x = HypotheticalTools4,y=Count))+
geom_bar(stat='identity',colour="white", fill =fillColor) +
geom_text(aes(x = HypotheticalTools4, y = .01, label = paste0("( ",round(Count*100,2)," %)",sep="")),
hjust=0, vjust=.5, size = 4, colour = 'black',
fontface = 'bold') +
scale_y_continuous(labels = percent_format()) +
labs(x = subjectName ,y = 'Count', title = subjectName) +
coord_flip() +
theme_bw()Median Salary around 88K and Mean Salary of 129K
Most have a Bachelor’s degree in Computer Science
Most want to learn Linux,AWS and Android in the Platform area
Most want to learn Node,React and TensorFlow in the Framework area
Most want to learn PostgreSQL,MySQL and MongoDB in the Database area
Most want to learn Javascript,HTML and CSS in the Language area
eng_manager <- survey_results %>%
filter(str_detect(DevType,"Engineering"))
TotalNoofRows = nrow(eng_manager)
eng_manager %>%
ggplot(aes(x = ConvertedSalary) )+
geom_histogram(fill = fillColor2) +
scale_x_log10() +
scale_y_log10() +
labs(x = 'Annual Salary' ,y = 'Count', title = paste("Distribution of", "Annual Salary")) +
theme_bw()summary(eng_manager$ConvertedSalary)## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0 48300 88573 129926 135000 2000000 2283
Answers for Which of the following best describes the highest level of formal education that you have completed?
plotFormalEducation(eng_manager,TotalNoofRows)Answers for You previously indicated that you went to a college or university. Which of the following best describes your main field of study (aka 'major')?
plotUnderGradDegree(eng_manager,TotalNoofRows)plotPlatformDesire(eng_manager,TotalNoofRows)plotFrameworkDesire(eng_manager,TotalNoofRows)plotDatabaseDesire(eng_manager,TotalNoofRows)plotLanguageDesire(eng_manager,TotalNoofRows)Median Salary around 69K and Mean Salary of 117 K
Most have a Bachelor’s degree in Computer Science
Most want to learn Linux,AWS and Android in the Platform area
Most want to learn Node,React and TensorFlow in the Framework area
Most want to learn PostgreSQL,MySQL and MongoDB in the Database area
Most want to learn Javascript,HTML and CSS in the Language area
c_suite <- survey_results %>%
filter(str_detect(DevType,"C-suite"))
TotalNoofRows = nrow(c_suite)
c_suite %>%
ggplot(aes(x = ConvertedSalary) )+
geom_histogram(fill = fillColor) +
scale_x_log10() +
scale_y_log10() +
labs(x = 'Annual Salary' ,y = 'Count', title = paste("Distribution of", "Annual Salary")) +
theme_bw()summary(c_suite$ConvertedSalary)## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0 29376 69244 117667 120787 2000000 1871
Answers for Which of the following best describes the highest level of formal education that you have completed?
plotFormalEducation(c_suite,TotalNoofRows)Answers for You previously indicated that you went to a college or university. Which of the following best describes your main field of study (aka 'major')?
plotUnderGradDegree(c_suite,TotalNoofRows)plotPlatformDesire(c_suite,TotalNoofRows)plotFrameworkDesire(c_suite,TotalNoofRows)plotDatabaseDesire(c_suite,TotalNoofRows)plotLanguageDesire(c_suite,TotalNoofRows)Median Salary around 72K and Mean Salary of 115 K
Most have a Bachelor’s degree in Computer Science
Most want to learn Linux,AWS and Raspberry Pi in the Platform area
Most want to learn Node,React and Angular in the Framework area
Most want to learn PostgreSQL,Redis and ElasticSearch in the Database area
Most want to learn Javascript,Python and Bash/Shell in the Language area
devops <- survey_results %>%
filter(str_detect(DevType,"DevOps specialist"))
TotalNoofRows = nrow(devops)
devops %>%
ggplot(aes(x = ConvertedSalary) )+
geom_histogram(fill = fillColor) +
scale_x_log10() +
scale_y_log10() +
labs(x = 'Annual Salary' ,y = 'Count', title = paste("Distribution of", "Annual Salary")) +
theme_bw()summary(devops$ConvertedSalary)## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0 41124 72469 115029 110000 2000000 3462
Answers for Which of the following best describes the highest level of formal education that you have completed?
plotFormalEducation(devops,TotalNoofRows)Answers for You previously indicated that you went to a college or university. Which of the following best describes your main field of study (aka 'major')?
plotUnderGradDegree(devops,TotalNoofRows)plotPlatformDesire(devops,TotalNoofRows)plotFrameworkDesire(devops,TotalNoofRows)plotDatabaseDesire(devops,TotalNoofRows)plotLanguageDesire(devops,TotalNoofRows)Median Salary around 55K and Mean Salary of 96 K
Most have a Bachelor’s degree in Computer Science
Most want to learn Linux,Android and AWS in the Platform area
Most want to learn Node,React and Angular in the Framework area
Most want to learn MySQL,PostgreSQL,MongoDB in the Database area
Most want to learn Javascript,HTML and SQL in the Language area
backend <- survey_results %>%
filter(str_detect(DevType,"Back-end developer"))
TotalNoofRows = nrow(backend)
backend %>%
ggplot(aes(x = ConvertedSalary) )+
geom_histogram(fill = fillColor) +
scale_x_log10() +
scale_y_log10() +
labs(x = 'Annual Salary' ,y = 'Count', title = paste("Distribution of", "Annual Salary")) +
theme_bw()summary(backend$ConvertedSalary)## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0 24478 55562 96610 95000 2000000 24313
Answers for Which of the following best describes the highest level of formal education that you have completed?
plotFormalEducation(backend,TotalNoofRows)Answers for You previously indicated that you went to a college or university. Which of the following best describes your main field of study (aka 'major')?
plotUnderGradDegree(backend,TotalNoofRows)plotPlatformDesire(backend,TotalNoofRows)plotFrameworkDesire(backend,TotalNoofRows)plotDatabaseDesire(backend,TotalNoofRows)plotLanguageDesire(backend,TotalNoofRows)Median Salary around 51K and Mean Salary of 95K
Most have a Bachelor’s degree in Computer Science
Most want to learn Linux,Android and AWS in the Platform area
Most want to learn Node,React and Angular in the Framework area
Most want to learn MySQL,MongoDB,PostgreSQL in the Database area
Most want to learn Javascript,HTML and CSS in the Language area
frontend <- survey_results %>%
filter(str_detect(DevType,"Front-end developer"))
TotalNoofRows = nrow(frontend)
frontend %>%
ggplot(aes(x = ConvertedSalary) )+
geom_histogram(fill = fillColor) +
scale_x_log10() +
scale_y_log10() +
labs(x = 'Annual Salary' ,y = 'Count', title = paste("Distribution of", "Annual Salary")) +
theme_bw()summary(frontend$ConvertedSalary)## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0 22032 51408 95028 88116 2000000 16333
Answers for Which of the following best describes the highest level of formal education that you have completed?
plotFormalEducation(frontend,TotalNoofRows)Answers for You previously indicated that you went to a college or university. Which of the following best describes your main field of study (aka 'major')?
plotUnderGradDegree(frontend,TotalNoofRows)plotPlatformDesire(frontend,TotalNoofRows)plotFrameworkDesire(frontend,TotalNoofRows)plotDatabaseDesire(frontend,TotalNoofRows)plotLanguageDesire(frontend,TotalNoofRows)Median Salary around 60K and Mean Salary of 101 K
Most have a Bachelor’s degree in Computer Science
Most want to learn Linux,AWS,Raspberry Pi in the Platform area
Most want to learn TensorFlow,Nodejs,Spark in the Framework area
Most want to learn PostgreSQL,MongoDB,MySQL in the Database area
Most want to learn Python,SQL and Javascript in the Language area
data_scientist <- survey_results %>%
filter(str_detect(DevType,"Data scientist"))
TotalNoofRows = nrow(data_scientist)
data_scientist %>%
ggplot(aes(x = ConvertedSalary) )+
geom_histogram(fill = fillColor) +
scale_x_log10() +
scale_y_log10() +
labs(x = 'Annual Salary' ,y = 'Count', title = paste("Distribution of", "Annual Salary")) +
theme_bw()summary(data_scientist$ConvertedSalary)## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0 28044 60000 101430 100652 2000000 3325
Answers for Which of the following best describes the highest level of formal education that you have completed?
plotFormalEducation(data_scientist,TotalNoofRows)Answers for You previously indicated that you went to a college or university. Which of the following best describes your main field of study (aka 'major')?
plotUnderGradDegree(data_scientist,TotalNoofRows)plotPlatformDesire(data_scientist,TotalNoofRows)plotFrameworkDesire(data_scientist,TotalNoofRows)plotDatabaseDesire(data_scientist,TotalNoofRows)plotLanguageDesire(data_scientist,TotalNoofRows)Median Salary around 58K and Mean Salary of 106 K
Most have a Bachelor’s degree in Computer Science
Most want to learn Linux,Windows Desktop/Server,Android in the Platform area
Most want to learn Nodejs,TensorFlow,Angular in the Framework area
Most want to learn SQL Server,MySQL,PostgreSQL in the Database area
Most want to learn SQL,Python, and Javascript in the Language area
business_analyst <- survey_results %>%
filter(str_detect(DevType,"business analyst"))
TotalNoofRows = nrow(business_analyst)
business_analyst %>%
ggplot(aes(x = ConvertedSalary) )+
geom_histogram(fill = fillColor) +
scale_x_log10() +
scale_y_log10() +
labs(x = 'Annual Salary' ,y = 'Count', title = paste("Distribution of", "Annual Salary")) +
theme_bw()summary(business_analyst$ConvertedSalary)## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0 28235 58891 106542 95000 2000000 3471
Answers for Which of the following best describes the highest level of formal education that you have completed?
plotFormalEducation(business_analyst,TotalNoofRows)Answers for You previously indicated that you went to a college or university. Which of the following best describes your main field of study (aka 'major')?
plotUnderGradDegree(business_analyst,TotalNoofRows)plotPlatformDesire(business_analyst,TotalNoofRows)plotFrameworkDesire(business_analyst,TotalNoofRows)plotDatabaseDesire(business_analyst,TotalNoofRows)plotLanguageDesire(business_analyst,TotalNoofRows)